package br.com.quintess.servlet;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.quintess.dao.UsuarioDAO;
import br.com.quintess.objetos.Usuario;
import br.com.quintess.util.UsuarioUtil;

@WebServlet(urlPatterns={"/Acao"})
public class Acao extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private static String destino;
       
    public Acao() {
    }

	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String acao = request.getParameter("acao");
		
		switch (acao) {
			case "logar":
				String codigo = request.getParameter("codigo");
				String senha = request.getParameter("senha");
				
				UsuarioDAO usuarioDAO = new UsuarioDAO();				
				Usuario usuario = usuarioDAO.getRegistro(codigo);	
				usuarioDAO.getPoolConnection();
				if(usuarioDAO.alterar(usuario.getCodigo()+"", usuario)){
					usuarioDAO.commit();
				}else{
					usuarioDAO.rollback();
				}
				usuarioDAO.close();
				
				
				if(UsuarioUtil.validarSenha(usuario.getSenha(), senha)){
					UsuarioUtil.logar(usuario);
					request.getSession().setAttribute("USUARIO", usuario);
				}else{
					request.setAttribute("ERRO", "Senha incorreta!");
				}
				
				destino = "/inicio.jsp";
			break;
			
			case "deslogar":
				
				destino = "/login.jsp";
			break;
			
			default:
				destino = "/index.jsp";
			break;
		}
				
		ServletContext context = getServletContext();
		RequestDispatcher dispatcher = context.getRequestDispatcher(destino);
		dispatcher.forward(request, response);
	}

}
